package shujia.day17.udpdemo1;

import java.net.DatagramPacket;
import java.net.DatagramSocket;
import java.net.InetAddress;

/*
无论是UDP编程还是TCP编程，每个端都需要创建对应的Socket对象

    1:建立udp的socket服务
        UDP协议发送端的Socket类叫做：DatagramSocket
    2:将要发送的数据封装成数据包
    3:通过udp的socket服务,将数据包发送出
    4:关闭资源
 */
public class SendDemo1 {
    public static void main(String[] args) throws Exception{
        // DatagramSocket() 构造数据报套接字并将其绑定到本地主机上的任何可用端口。
        DatagramSocket ds = new DatagramSocket();

        //将要发送的数据封装成数据包 DatagramPacket
        //DatagramPacket(byte[] buf, int length, InetAddress address, int port)
        //构造用于发送长度的分组的数据报包 length指定主机上到指定的端口号。
        byte[] bytes = "张成阳是世界最帅的男人！".getBytes(); // 发送数据的字节数组形式
        int length = bytes.length; // 数据内容字节数组的长度
        InetAddress address = InetAddress.getByName("192.168.1.20"); // 目标ip地址的InetAddress对象
        int port = 10086;
        DatagramPacket datagramPacket = new DatagramPacket(bytes, length, address, port);

        //3:通过udp的socket服务,将数据包发送出
        //DatagramPacket
        ds.send(datagramPacket);

        // 关闭资源
        ds.close();
    }
}
